#include <iostream>
#include <cstring>
//#include <libxml2/libxml/parser.h>
//#include <libxml2/libxml/tree.h>
#include <vector>

#include <log4cxx/logger.h>
#include <log4cxx/patternlayout.h>
#include <log4cxx/consoleappender.h>

//void printValue(xmlDocPtr doc, xmlNodePtr node)
//{
//  std::vector<xmlNodePtr> ptrVec;
//  if(node->xmlChildrenNode)
//  {
//    ptrVec.push_back(node->xmlChildrenNode);
//  }
//
//  for(size_t i = 0; i < ptrVec.size(); ++i)
//  {
//    xmlNodePtr curNode = ptrVec[i];
//    while(curNode)
//    {
//      //if(strcmp((const char*)curNode->name, "text") != 0)
//      if(!xmlNodeIsText(curNode))
//      {
//        std::cout << curNode->name << std::endl;
//
//        //if(!xmlStrcmp(curNode->name, (const xmlChar*)"MysqlInfo"))
//        //{
//        //  xmlChar* content = xmlGetProp(curNode, (const xmlChar*)"num");
//        //  if(content)
//        //  {
//        //    std::cout << content << std::endl;
//        //  }
//        //}
//      }
//
//      if(curNode->xmlChildrenNode)
//      {
//        ptrVec.push_back(curNode->xmlChildrenNode);
//      }
//
//      curNode = curNode->next;
//    }
//  }
//}

int main()
{
  
  log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger("123");
  log4cxx::Logger::getRootLogger()->setLevel(log4cxx::Level::getDebug());
  log4cxx::LoggerPtr root = log4cxx::Logger::getRootLogger();
  log4cxx::PatternLayoutPtr cpl = new log4cxx::PatternLayout("%d{yyyy MMM dd HH:mm:ss,SSS} %c %p: %m%n");
  log4cxx::ConsoleAppenderPtr carp = new log4cxx::ConsoleAppender(cpl);
  carp->setName("console");
  root->addAppender(carp);
  logger->error("123");

  //xmlDocPtr doc = xmlParseFile("./test.xml");
  //if(doc)
  //{
  //  std::cout << doc << std::endl; 
  //  xmlNodePtr rootNode = xmlDocGetRootElement(doc);
  //  std::cout << rootNode->name << std::endl;

  //  printValue(doc, rootNode); 
  //  //getNodeChild
    //xmlNodePtr curNode = rootNode->xmlChildrenNode;
    //while(curNode)
    //{
    //  //find right nodename
    //  //std::cout << curNode->name << std::endl; 
    //  //getNodeNext 
    //  //curNode = curNode->next;

    //  xmlNodePtr oldNode = curNode;
    //  xmlNodePtr tmpNode = curNode;
    //  while(tmpNode)
    //  {
    //    if(strcmp((const char*)tmpNode->name, "text") != 0)
    //    {
    //      std::cout << tmpNode->name << std::endl;
    //    }

    //    if(tmpNode->xmlChildrenNode)
    //    {
    //      curNode = tmpNode->xmlChildrenNode;
    //    }

    //    tmpNode = tmpNode->next;
    //  }
    //  if(curNode == oldNode)
    //  {
    //    curNode = nullptr;
    //  }
    //}

  //}



  return 0;
}

